实训七     排序操作                                                         

一、实训目的


1.  掌握常见的排序算法的思想及其适用条件。

2. 掌握常见的排序算法的程序实现。


二、考核办法


必做题部分全做得3分,选做题部分满分2分,至少选一题。

 

三、实训内容


1.必做内容:(满分3分)

输入一组关键字序列分别实现下列排序:


1. 实现简单选择排序。void SelectSort(SeqList *s)


2. 实现直接插入排序。void InsertSort(SeqList *p)  


3.实现快速排序算法。int Partition(SeqList *tb1,int low,int high)  


4. 实现冒泡排序算法。void bublesort(SeqList *r)


5.在主函数中设计一个简单的菜单,分别测试上述算法。


6.结构体部分代码:
typedef struct
{
int data[10];
int last;
}SeqList;
SeqList *init_SeqList()
{
SeqList *L1;
L1=malloc(sizeof(SeqList));
L1->last=-1;
return L1;
}

 

2. 选做内容:(满分2分)

 

1. 采用几组不同数据测试算法1—算法4的比较次数和移动次数。


2.一个线性表中的元素为正整数和负整数。试设计一个算法,将正整数和负整数分开,使线性表的前一半为负整数,后一半为正整数。




朱丹,电话:0412-8413220